SucheMitgliederKalenderHilfe Hallo, Gast! Registrieren
Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Problem mit PHP
12.08.2004, 14:32
Beitrag: #11
 
Kann es sein das dein Tabellenname nicht stimmt? Oder das die Inhalte nicht stimmen? Also das es kein News, Header ... gibt?

PS: Schreib mal hinter mysql_query($sql); folgendes

[php:1]mysql_query($sql) OR die(mysql_error());[/php:1]

Sag was dann da steht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2004, 16:35
Beitrag: #12
 
Der hat mir gesagt, das die Datenbank nicht da is, habe dann in der install.php nachgeschaut und gesehen, das dort die Tabelle news und nicht News erstellt wurde...

Also funzt jetzt alles, danke dir Virus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2004, 16:51
Beitrag: #13
 
Jo es sind immer die kleinen Dinge die einen manchmal zur Verzweiflung bringen können. ^^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2004, 20:56
Beitrag: #14
 
So, das nächste Problem steht an, welches ich nicht gelöst bekomme.


ich möchte mit einem php Script zwei Tabellen in der Datenbank erstellen, die erste Tabelle wird erstellt, aber dann kommt diese Fehlermeldung und ende is.

Fehlermeldung:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; CREATE TABLE `Kommentare` ( `ID` INT NOT NULL AUTO_INCREMENT




hier is mal der Code der Datei...

[php:1]
<?php
//install.php
include("config.php");
$db_link= @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if($db_link){
if(mysql_select_db(MYSQL_DATABASE)){
mysql_select_db(MYSQL_DATABASE);
$sql = "CREATE TABLE `News`(
`ID` INT NOT NULL AUTO_INCREMENT,
`Header` VARCHAR(50) NOT NULL,
`News` TEXT NOT NULL,
`Datum` DATETIME,
PRIMARY KEY (`ID`)
);
CREATE TABLE `Kommentare` ( `ID` INT NOT NULL AUTO_INCREMENT ,'
. ' `News_ID` INT NOT NULL ,'
. ' `Name` VARCHAR( 50 ) NOT NULL ,'
. ' `aMail` VARCHAR( 50 ) NOT NULL ,'
. ' `Kommentar` TEXT NOT NULL ,'
. ' `Datum` DATETIME NOT NULL ,'
. ' PRIMARY KEY ( `ID` ) )';
";

mysql_query($sql) OR die(mysql_error());
echo"installation erfolgreich.<br>
";
echo"Bitte löschen sie die Datei install.php";
}
mysql_close();
}else{
echo"Verbundung zur Datenbank konnte nicht hergestellt werden.";
echo"Bitte korrigieren sie die ihre Eingaben in der config.php";
}

?>
[/php:1]


die erste Tabelle wird ja noch erstellt, nur die zweite nicht... habe schon verschiedene Möglilchkeiten versucht, aber nüscht is. Den Befehl habe ich mir von phpmyadmin erstellen lassen und es kommt trozdem eine Fehlermeldung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2004, 23:40
Beitrag: #15
 
So, das Problem wurde mit PHP-Mastas hilfe (im IRC Channel) gelöst.

@Znay kannst den funktionierenden Code posten, damit man weiss was falsch war?

.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2004, 23:52
Beitrag: #16
 
Klar

[php:1]
<?php
//install.php
include("config.php");
$db_link= @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if($db_link){
if(mysql_select_db(MYSQL_DATABASE)){
mysql_select_db(MYSQL_DATABASE);
$sql = "CREATE TABLE `News`(
`ID` INT NOT NULL AUTO_INCREMENT,
`Header` VARCHAR(50) NOT NULL,
`News` TEXT NOT NULL,
`Datum` DATETIME,
PRIMARY KEY (`ID`)
);";
$sql2="CREATE TABLE `Kommentare` ( `ID` INT NOT NULL AUTO_INCREMENT ,
`News_ID` INT NOT NULL ,
`Name` VARCHAR( 50 ) NOT NULL ,
`aMail` VARCHAR( 50 ) NOT NULL ,
`Kommentar` TEXT NOT NULL ,
`Datum` DATETIME NOT NULL ,
PRIMARY KEY ( `ID` ) );
";
mysql_query($sql) OR die(mysql_error());
mysql_query($sql2) OR die(mysql_error());
echo"installation erfolgreich.<br>
";
echo"Bitte löschen sie die Datei install.php";
}
mysql_close();
}else{
echo"Verbundung zur Datenbank konnte nicht hergestellt werden.";
echo"Bitte korrigieren sie die ihre Eingaben in der config.php";
}

?>
[/php:1]

Also wer nicht von selbst drauf kommt, man kann Pro mysql_query(); nur einen Befehl asuführen, also uss man 2 querys machen. So werden dann auch beide Tabellen erstellt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.08.2004, 06:55
Beitrag: #17
 
Richtig.
Nur hab ich da eine Sache zum einwenden. Folgendes. Stelle dir mal vor du willstn die Tabellen anlegen. Jetzt passiert da ein Fehler, Tabelle 1 ($sql) wird nicht angelegt. Da wird dann eine Meldung ausgegeben und hinzu auch die Meldung das die Installation erfolgreich war. Ein Leihe sieht die erste Fehlermeldung, weiß nicht was das soll und sieht unten dann "installation erfolgreich." und denkt sich ok, alles roger. So ist es aber nicht, in Wirklichkeit wurde nur die 2. Tabelle hinzugefügt und die erste nicht. Dafür kann man sich ein Script baun das überprüft ob die Tabellen hinzugefügt wurden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.08.2004, 11:17
Beitrag: #18
 
stimmt, da hast du recht. aber is dafür nicht das OR die(mysql_error()) [Bild: confused.gif]

Wenn nicht würde ich mich einmeal sehr über eine erklärung für das OR die(mysql_error()) freuen und über ein Script, welches prüft ob die Tabelle erstellt wurde.

Mfg. Znay
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.08.2004, 16:22
Beitrag: #19
 
Dieses hilft dir, also als Programmierer, anzuzeigen ob eine Fehler aufgetreten ist. Ein Leihe kann mit dieser Fehlermeldung aber nichts anfangen, ersten ist es englisch und zweitens hat diese Person keine Ahung von dem was da steht. Nich alle aber viele. So nur für dich als Programmierer brauchste keine Kontrolle ob die Tabellen wirklich angelegt wurden, solltest du aber für die Zukunft Scripte schreiben, die du zum Download bereit stellst, solltest du kontrollieren lassen ob wirklich alles angelegt wurde.
Das Script welches kontrolliert ob alles richtig angelegt ist, musst du dir selber schreiben. Es gibt keine Funktion in PHP dafür. Man könnte das zwar so schreiben, dass du alles was in dieser Tabelle steht auslesen willst, ist die Tabelle aber nicht vorhanden gibt es noch eine Fehlermeldung. Ich such mal bei mir die Ordner und CD's durch, ich hatte mir mal eine Funktion gebastelt die das kann. Werde sie posten wenn ich sie gefunden hab. Kann aber dauern da die in irgendeinem Script drin ist.

Nachträglich:

Habse gefunden.

[php:1]
function check_table($table)
{
$status = FALSE;
$sql = mysql_query("SHOW TABLES") OR die(mysql_error());
while($ergebnis = mysql_fetch_array($sql))
{
if ($ergebnis[0] == $table)
$status = TRUE;
}
return $status;
}

if(check_table(*****) == TRUE)
echo 'Tabelle ist vorhanden';
else
echo 'Tabelle ist nicht vorhanden';
[/php:1]

Fragen? Biggrin Biggrin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  flash + php = Problem loewenzahn 2 217 29.12.2007 12:32
Letzter Beitrag: loewenzahn
  Problem mit Captcha Freshmaker_01 23 545 26.11.2006 00:44
Letzter Beitrag: ~Christian
  Problem mit Uploadscript Takedown 3 321 28.02.2006 08:35
Letzter Beitrag: Takedown
  [PHP] mkdir Problem Takedown 11 628 27.01.2006 16:43
Letzter Beitrag: Takedown
  [PHP] Login Script Problem XuRaX 17 810 17.01.2006 08:30
Letzter Beitrag: Virus
  Problem mit: PHP-SWITCH styleCoder 2 372 15.09.2005 09:51
Letzter Beitrag: Virus
  navigieren mit indes.php?action=... (switch) problem Novadis 7 403 31.05.2005 14:18
Letzter Beitrag: e-phy
  Riesen problem und keine lösung in sicht ! include() Novadis 7 341 28.04.2005 16:58
Letzter Beitrag: ~Christian
  Problem mit Where Klausel bei Join White 2 252 25.03.2005 20:20
Letzter Beitrag: White
  Problem mit Scripte von Osmodia rene 2 240 17.02.2005 13:33
Letzter Beitrag: Freshmaker_01

Gehe zu:

KontaktWebhilfe.infoNach obenZum InhaltArchiv-ModusRSS-Synchronisation