Hi,
ich möchte mehrere Checkboxes anzeigen lassen und die Werte und Namen der Checkboxes aus der Datenbank holen.
Die Rubriken auszulesen funktioniert einzeln, aber in Verbindung mit den Checkboxes klappt das irgendwie nicht. Ich bekomme dabei folgende Fehlermeldungen:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 208
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 214
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 220#
Die hängen sicherlich zusammen und haben mit einem Problem zu tun, was mit Sicherheit weiter oben in der Datei liegt. Aber ich konnte ihn nach mehrmaligem Prüfen nicht finden. Hier die betreffenden Stellen im Quellcode:
Und hier der gesamte Quellcode der Datei.
Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus.
LG,
TMG
ich möchte mehrere Checkboxes anzeigen lassen und die Werte und Namen der Checkboxes aus der Datenbank holen.
Die Rubriken auszulesen funktioniert einzeln, aber in Verbindung mit den Checkboxes klappt das irgendwie nicht. Ich bekomme dabei folgende Fehlermeldungen:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 208
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 214
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in F:\minixampp\htdocs\anzeige_aufgeben.php on line 220#
Die hängen sicherlich zusammen und haben mit einem Problem zu tun, was mit Sicherheit weiter oben in der Datei liegt. Aber ich konnte ihn nach mehrmaligem Prüfen nicht finden. Hier die betreffenden Stellen im Quellcode:
PHP:
Inhalt der Anzeige:
<input type="text" name="anzeigentext" size=40 maxlength=255>
<?php
$i=0;
for ($i < count($p_rubriknummer))
{$i++;
?><input type="checkbox" name="rubrik[]"
value="<?php
echo $p_rubriknummer[$i]?>"><?php
echo $p_rubrikbezeichnung[$i]."<br>";
}
?>
<br>
<input type="submit" name="ausführen" value="registrieren">
</form>
<?php
}
function gib_rubriken()
{
//alle rubriknummern und -bezeichnungen auslesen
$query="select rubriknummer,rubrikbezeichnung from rubrik order by rubrikbezeichnung";
$ergebnis=mysql_query($query,$verbindung);
if (!$ergebnis)
echo mysql_error();
//array in $rubrik schreiben
$rubrik=array();
while($zeile=mysql_fetch_array($ergebnis))
{
$rubbez=$zeile['rubrikbezeichnung'];
$rubnr=$zeile['rubriknummer'];
$rubrik['$rubbez']=$rubnr;
}
mysql_free_result($ergebnis);
}
?>
Und hier der gesamte Quellcode der Datei.
PHP:
<HTML>
<title>Anzeigen aufgeben</title>
<BODY bgcolor="oofbff">
<P>
<?php
//Beginn
echo "Anzeige aufgeben <br><br>";
echo"<a href=\"./index.php\">Zurueck</a><br><br>";
if(isset($_get["ausführen"]))
anzeige_eintragen();
formular();
/**
*von hier werden die Funktionen datenbank_verbinden(),
*gib_rubriken() und formular_aufbauen() aufgerufen
*/
function formular()
{
$verbindungskennung=datenbank_verbinden();
gib_rubriken($rubriknummer,$rubrikbezeichnung,$verbindungskennung);
formular_aufbauen($rubriknummer,$rubrikbezeichnung);
}
/**
*von hier werden die Funktionen Datenbank_verbinden(),
*check_nickname(),check_email(),check_eintraege() u.
*schreib_inserat() aufgerufen
*/
function anzeige_eintragen()
{
$verbindungskennung=datenbank_verbinden();
if(check_nickname($verbindungskennung)
&&check_email($verbindungskennung)
&&check_eintraege())
schreib_inserat($verbindungskennung);
}
/**
*baut Verbindung zur Datenbank auf
*Verbindungskennung an die aufgerufene Funktion zurück
*@return resource Verbindungskennung
*/
function datenbank_verbinden()
{
$db_server="localhost";
$db_user="root";
$db_passwort="";
$datenbank="projekt";
//mit der Datenbank verbinden
$verbindung=mysql_connect($db_server,$db_user,$db_passwort,$datenbank);
if(!$verbindung)
die("Der Server kann nicht erreicht werden.");
if(!mysql_select_db($datenbank,$verbindung))
die("Die Datenbank kann nicht angesprochen werden.");
echo "$datenbank verbunden";
return $db_verbindung;
}
/**
*überprüft ob nickname schon in tabelle inserent
*vorhanden ist und gleichzeitig die vom benutzer eingegebene
*email nicht passend ist
*@param resource $p_verbindungskennung DB Verbindung
*qreturn bool ist false, falls nickname schon vorhanden
*/
function check_nickname($p_verbindungskennung)
{
$query=sprintf("select nickname from inserent
where nickname='%s',
and email!='%s'",
$_get["nickname"],
$_get["email"]);
$ergebnis=mysql_query($query,$p_verbindungskennung);
if(mysql_num_rows($ergebnis)!=0)
{
echo "Fehler! Der Name ist leider schon vergeben.
Waehlen sie bitte einen anderen Namen oder die passende email-Adresse <br><br>";
Return false;
}
return true;
}
/**
*überprüft ob alle formularfelder ausgefüllt wurden
*und ob zw ein und drei rubriken vom benutzer
*ausgewaehlt wurden
*@return bool ist false, falls fehlende oder falsche Eingabe
*/
function check_eintraege()
{
if (empty($_get["nickname"]))
{
echo "Fehler! Sie haben keinen Namen angegeben <br><br>";
return false;
}
if (empty($_get["email"]))
{
echo "Fehler! Sie haben keine email angegeben <br><br>";
return false;
}
if (empty($_get["anzeigentext"]))
{
echo "Fehler! Sie haben keinen Anzeigentext angegeben <br><br>";
return false;
}
if (!isset($_get["rubrik"]))
{
echo "Fehler! Sie haben keine Rubrik gewählt<br><br>";
return false;
}
if(count($_get["rubrik"])>3)
{echo "Sie können nur maximal 3 Rubriken wählen <br><br>";
return false;
}return true;
}
/**
*ermittelt, ob Kombination Nickname &
*Email schon in Tabelle inserent vorhanden
*,falls ja dann Anzeige eintragen
*Inserenten zugeordnet, falls nein: Anzeige wird in Datenbank geschrieben
*ein neuer Inserent wird angelegt und diesem wird Anzeige zugeordnet
*@param resource $p_verbindungskennung
*/
Function schreib_inserat($p_verbindungskennung)
{
$query=sprintf("Select inserentennummer From inserent
Where nickname='%s',
And email='%s'",
$_get['nickname'],
$_get['email'] );
$ergebnis=mysql_query($query,$p_verbindungskennung);
If (mysql_num_rows($ergebnis)!=0)
{
//Inserent ist schon in Datenbank
$zeile=mysql_fetch_array($ergebnis);
$inserentennummer=$zeile['inserentennummer'];
}
Else
{
//neuen Inserenten aufnehmen
$query=sprintf("insert into inserent
Set nickname='%s',
email='%s'",
$_get['nickname'],
$_get['email']);
$ergebnis=mysql_query($query,$p_verbindungskennung);
$inserentennummer=mysql_insert_id();
}
//Anzeige abspeichern, Anzeigennummer merken
$query=sprintf("insert into anzeige
Set anzeigentext='%s',
anzeigendatum=CURDATE(),
inserentennummer=$inserentennummer",
$_get['anzeigentext']);
$ergebnis=mysql_query($query,$p_verbindungskennung);
$anzeigennummer=mysql_insert_id();
//zugeordnete Rubriken abspeichern
$rubrikarray=array();
$rubrikarray=$_get['rubrik'];
$i=0;
While ($i<count($rubrikarray))
{
$query="insert into veroeffentlichen
Set rubriknummer=$rubrikarray[$i],
Anzeigennummer=$anzeigennummer";
$ergebnis=mysql_query($query,$p_verbindungskennung);
$i++;
}
Echo "Ihre Anzeige wurde eingetragen. <br><br>";
Mysql_close($p_verbindungskennung);
}
function formular_aufbauen ($p_rubriknummer,$p_rubrikbezeichnung)
{
?>
<form action="<? $_server['PHP_SELF'] ?>" method="get">
<H4 align=center> <font color="646464"><small><marquee behaviour=alternate>Eintragung der Anzeige...
</h4></small></font color></marquee>
<hr width=80%>
Nickname:<input type="text" name="nickname">
E-mail<input type="text" name="email">
<br>
Inhalt der Anzeige:
<input type="text" name="anzeigentext" size=40 maxlength=255>
<?php
$i=0;
for ($i < count($p_rubriknummer))
{$i++;
?><input type="checkbox" name="rubrik[]"
value="<?php
echo $p_rubriknummer[$i]?>"><?php
echo $p_rubrikbezeichnung[$i]."<br>";
}
?>
<br>
<input type="submit" name="ausführen" value="registrieren">
</form>
<?php
}
function gib_rubriken()
{
//alle rubriknummern und -bezeichnungen auslesen
$query="select rubriknummer,rubrikbezeichnung from rubrik order by rubrikbezeichnung";
$ergebnis=mysql_query($query,$verbindung);
if (!$ergebnis)
echo mysql_error();
//array in $rubrik schreiben
$rubrik=array();
while($zeile=mysql_fetch_array($ergebnis))
{
$rubbez=$zeile['rubrikbezeichnung'];
$rubnr=$zeile['rubriknummer'];
$rubrik['$rubbez']=$rubnr;
}
mysql_free_result($ergebnis);
}
?>
</body>
</html>
Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus.
LG,
TMG